package com.ruoyi.cm.service;

import com.ruoyi.cm.domain.CmBaContractSheets;
import com.ruoyi.cm.domain.vo.CmBaContractSheetsVo;
import com.ruoyi.cm.domain.bo.CmBaContractSheetsBo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.sun.org.apache.xpath.internal.operations.Bool;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 合同清单详情Service接口
 *
 * @author zyb
 * @date 2024-09-24
 */
public interface ICmBaContractSheetsService {

    /**
     * 查询合同清单详情
     */
    CmBaContractSheetsVo queryById(Long sheetId);

    /**
     * 查询合同清单详情列表
     */
    TableDataInfo<CmBaContractSheetsVo> queryPageList(CmBaContractSheetsBo bo, PageQuery pageQuery);

    /**
     * 查询合同清单详情列表
     */
    Map<String,Object> queryList(CmBaContractSheetsBo bo);

    List<CmBaContractSheetsVo> selectList(CmBaContractSheetsBo bo);

    /**
     * 新增合同清单详情
     */
    Boolean insertByBo(CmBaContractSheetsBo bo);

    Boolean insertBatchByBo(List<CmBaContractSheetsBo> boList);

    /**
     * 修改合同清单详情
     */
    Boolean updateByBo(CmBaContractSheetsBo bo);

    /**
     * 修改合同清单批量
     */
    Boolean editBatch(List<CmBaContractSheetsBo> boList);

    /**
     * 修改合同清单详情审批状态
     */
    Boolean updateApprovalStatusByBo(CmBaContractSheetsBo bo);

    /**
     * 校验并批量删除合同清单详情信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Map<String,Object> listBillingInfo(String bdId,String zdId);


    Map<String, Object> listBillingInfoExport(String bdId,String zdId);

    Map<String, Object> getApprovalStatus(String bdId, String zdId);

    R check(String bdId);

    // 合同清单批量变更信息保存
    Boolean editChgBatch(List<CmBaContractSheetsBo> boList);
}
